package com.woniu.park.util;

import lombok.Data;

/**
 * @version: V1.0
 * @author: 陈小宝
 * @className: Result
 * @packageName: com.example.test0821.entity
 * @description: 返回结果
 * @data: 2020-08-22 14:35
 */
@Data
public class Result {
    /**
     * 信息返回成功失败
     */
    private boolean success;
    /**
     * 信息状态码
     * <p>
     * 成功状态码
     * 1 返回参数满足要求
     * ----------------------
     * 失败状态码
     * // 参数错误
     * 10001// 参数为空
     * 10002 // 参数不全
     * 10003; // 参数类型错误
     * 10004; // 参数无效
     * <p>
     * // 用户错误
     * 20001; // 用户不存在
     * 20002; // 用户未登陆
     * 20003; // 用户名或密码错误
     * 200031;//两次密码输入不一致
     * 20004; // 用户账户已被禁用
     * 20005;// 用户已存在
     * 20006;//余额不足
     * 20007;//邀请码错误
     * 20017;//先获取验证码
     * 20027;//验证码返回
     * 20008;//消费不满足优惠券的使用条件
     * 20009;//不满足取消预约条件
     * 30000;//输入为空
     * // 业务错误
     * 30001;// 系统业务出现问题
     * <p>
     * // 系统错误
     * 40001; // 系统内部错误
     * <p>
     * // 数据错误
     * 50001; // 数据未找到
     * 50002;// 数据有误
     * 50003;// 数据已存在
     * <p>
     * // 接口错误
     * 60001; // 系统内部接口调用异常
     * 60002;// 系统外部接口调用异常
     * 60003;// 接口禁止访问
     * 60004;// 接口地址无效
     * 60005;// 接口请求超时
     * 60006;// 接口负载过高
     * <p>
     * // 权限错误
     * 70001;// 没有访问权限
     *
     * 80001;//阿里云短信未过期
     * 80002;//阿里云短信已过期
     * 80003;//阿里云短信请获取短信验证
     * 80004;//阿里云短信发送失败
     * 80005;//阿里云短信发送成功
     * 80006;//短信验证码错误
     */
    private String code;
    /**
     * 返回文本信息
     */
    private String message;
    /**
     * 返回数据
     */
    private Object object;

    public Result() {
    }

    public Result(boolean success) {
        this.success = success;
    }

    public Result(boolean success, String code, String message) {
        this.success = success;
        this.code = code;
        this.message = message;
    }

    public Result(boolean success, String code, String message, Object object) {
        this.success = success;
        this.code = code;
        this.message = message;
        this.object = object;
    }

    public static Result success() {
        return new Result(true);
    }

    public static Result success(String code, String message) {
        return new Result(true, code, message);
    }

    public static Result success(String code, String message, Object object) {
        return new Result(true, code, message, object);
    }

    public static Result fail(String code, String message) {
        return new Result(false, code, message);
    }

    public static Result fail() {
        return new Result(false);
    }

    public static Result fail(String code, String message, Object object) {
        return new Result(true, code, message, object);
    }


}
